#ifndef STUN_PROTOCOL_OPERATION_H_
#define STUN_PROTOCOL_OPERATION_H_

#include "protocol_operation.h"

#include <cstdint>
#include <memory>

class StunMsg;
class StunProtocolParser;
class StunProtocolOperation : public ProtocolOperation
{
public:
    StunProtocolOperation();
    virtual ~StunProtocolOperation();
    int       ParserProtocol(const uint8_t * data, int data_length, int & use_length) override;
    StunMsg * GetStunMsg();

private:
    StunProtocolParser *     m_parser;
    std::shared_ptr<StunMsg> m_msg;
};

#endif
